<?php
    
    function mostrarFicha($message){
        
        enviarATodos($message);
    }
    
    function mostrarDisparador($message){
        enviarATodos($message);
    }
    
    function actualizarPosicionDisparador($message){
        enviarATodos($message);
    }
    
    function actualizarPosicionFicha($message){
        enviarATodos($message);
    }
    
    function enviarTurno($tur){
        $mensaje = MENSAJES::ENVIARTURNO.';'.$tur;
        enviarATodos($mensaje);
    }    
    
    function recibirDisparo($message){
        
        global $lista_jugadores;
        global $aux_te_toca;
        global $Server;
        
        enviarATodos($message);
        $siguiente=0;
        for($ii=0;$ii<sizeof($lista_jugadores);$ii++)
        {
            $aux_jug2=$lista_jugadores[$ii];

            if(($aux_jug2->getTetoca()=='true')&&($aux_jug2->getNumero()!='4')){
               $aux_jug2->setTetoca('false');
               $aux_te_toca=$lista_jugadores[$ii+1];
               $aux_te_toca->setTetoca('true');
               
 
               //mando turno
                $toca=Mensajes::RECIBIRTURNO.';'.$aux_jug2->getTetoca();
                enviarAUno($aux_jug2->getId(), $toca);

                //mando turno jugador que le toca
                //$toca=Mensajes::RECIBIRTURNO.';'.$aux_te_toca->getTetoca();
                //enviarAUno($aux_te_toca->getId(), $toca);
                $siguiente=$aux_te_toca->getNumero();
                enviarTurno($siguiente);
                break;

            }else if(($aux_jug2->getTetoca()=='true')&&($aux_jug2->getNumero()=='4'))
            {

               $aux_jug2->setTetoca('false');
               $aux_te_toca=$lista_jugadores[0];
               $aux_te_toca->setTetoca('true');
               

               //mando turno
                $toca=Mensajes::RECIBIRTURNO.';'.$aux_jug2->getTetoca();
                enviarAUno($aux_jug2->getId(), $toca);

                //mando turno jugador que le toca
                //$toca=Mensajes::RECIBIRTURNO.';'.$aux_te_toca->getTetoca();
                //enviarAUno($aux_te_toca->getId(), $toca);
            }
        }
        //envio el siguiente turno
        
    }
    
    function recibirColocada($message){
        enviarATodos($message);
    }
    
    function enviarNombre($nombre,$clientID){
        global $numJugador;
        global $max_jugadores;
        global $lista_jugadores;
        global $Server;
        global $tiempo_inicio;
        $max_jugadores=5;
        
        if($numJugador<$max_jugadores)
	{
                $jug=new Jugador($nombre,$numJugador,$clientID);
		
		//$message=$codigo.";".$nombre.";".$numJugador;
		array_push($lista_jugadores,$jug);
                $tam=sizeof($lista_jugadores);
                
                if($tam=='4')
                {
                    $tiempo_inicio=microtime_float();
                    //Send the message to everyone but the person who said it
                    for($i=0;$i<sizeof($lista_jugadores);$i++)
                    {
                            $aux_jug=$lista_jugadores[$i];
                            $jugador=Mensajes::ENVIARNOMBRE.';'.$aux_jug->getNombre().';'.$aux_jug->getNumero().';'.$aux_jug->getTetoca();
                            
                            //guardo el tiempo inicial para el jugador 1.
                            $tiempo_inicio=microtime_float();
                            $aux_jug->setTiempo_inicio($tiempo_inicio);
                            
                            $inicializar=  Mensajes::EMPEZAR.';'.'EMPEZAR';
                            enviarATodos($inicializar);
                            enviarATodos($jugador);
                    }
                    
                    
                    
                }
		$numJugador=$numJugador+1;
	}else{
            $Server->wsSend($clientID,Mensajes::SALAOCUPADA.";Sala Ocupada");
	}
    }
    
    function siguienteTurno(){
        
        
        
        global $aux_te_toca;
        
        $siguiente=$aux_te_toca->getNumero();
        enviarTurno($siguiente);
        
        $siguiente=  Mensajes::RECIBIRTURNO.';'.$aux_te_toca->getTetoca();
        enviarAUno($aux_te_toca->getId(), $siguiente);
        
        if($aux_te_toca->getNumero()=='1')
        {
            $inicializar=  Mensajes::INICIALIZAR.';'.'INICIALIZAR';
            enviarATodos($inicializar);
        }
        
        $turnojugador= Mensajes::ENVIARTURNOJUGADOR.';'.$aux_te_toca->getNumero();
        enviarATodos($turnojugador);
        
        //guardo el tiempo inicial para el jugador que va en el siguiente turno
        $tiempo_inicio=microtime_float();
        $aux_te_toca->setTiempo_inicio($tiempo_inicio);
    }
    
    function sincroPosFicha($message){
        enviarATodos($message);
    }
    
    function enviarATodos($texto){
        
        global $Server;
        
        $Server->log("ENVIA A TODOS:\"$texto\"");
        
        foreach ( $Server->wsClients as $id => $client ){	
                $Server->wsSend($id,"\"$texto\"");
        }
    }
    
    function enviarAUno($id,$texto){
        global $Server;
        $Server->wsSend($id,"\"$texto\"");
        $Server->log("ENVIA A UNO:\"$texto\"");
    }
    
    function microtime_float()
    {
        list($useg, $seg) = explode(" ", microtime());
        return ((float)$useg + (float)$seg);
    }

    function calcular_segundos_por_jugada(){
        //30000000 micro segundos = 30 segundos
        
        
        
        //while(NULL){
            
        //}
    }
    
    
    $aux_te_toca=null;
    $tiempo_inicio=null;
    
?>
